#pragma once

#include "Message.hpp"

namespace walker_sm
{
	class EntityBase
	{
	public:

		EntityBase()
		{
			SetId();
		}

		virtual ~EntityBase()
		{
		}

		int GetId()
		{
			return pid;
		}

		virtual void Update()=0;
		virtual void HandleMessage(const Message&)=0;

	private:
		void SetId()
		{
			pid=currentPid++;
		}

	private:
		int pid;
		static int currentPid;
	};
}

